Skip to content

Add Fibonacci Heap implementation #11862

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed

Conversation

mRcOol7
Copy link

@mRcOol7 mRcOol7 commented Oct 7, 2024

This pull request introduces a complete implementation of the Fibonacci Heap data structure in Python, designed to optimize operations such as insertion and deletion, making it suitable for advanced algorithms.

Features:

  • Core Operations:

    • insert(key): Inserts a new node with the specified key.
    • extract_min(): Removes and returns the node with the minimum key.
    • decrease_key(node, new_key): Decreases the key of a specified node.
    • delete(node): Deletes a specified node from the heap.
  • Node Structure:

    • The Node class supports key, degree, parent, child, and circular doubly-linked list properties.
  • Performance:

    • Optimized for amortized time complexities:
      • Insert: ( O(1) )
      • Extract Min: ( O(\log n) )
      • Decrease Key: ( O(1) )
      • Delete: ( O(\log n) )

Documentation:

  • Detailed method comments and an example usage section are included to enhance code clarity and usability.

Usage:
This implementation can be utilized for efficient priority queue management and is particularly effective in algorithms such as Dijkstra's and Prim’s.

- Implemented `FibonacciHeap` with core operations: `insert`, `extract_min`, `decrease_key`, and `delete`.
- Added `Node` class for heap node structure.
- Optimized for amortized time complexity with O(1) inserts and O(log n) extract min.
- Included example usage and basic documentation.
@algorithms-keeper
Copy link

Closing this pull request as invalid

@mRcOol7, this pull request is being closed as none of the checkboxes have been marked. It is important that you go through the checklist and mark the ones relevant to this pull request. Please read the Contributing guidelines.

If you're facing any problem on how to mark a checkbox, please read the following instructions:

  • Read a point one at a time and think if it is relevant to the pull request or not.
  • If it is, then mark it by putting a x between the square bracket like so: [x]

NOTE: Only [x] is supported so if you have put any other letter or symbol between the brackets, that will be marked as invalid. If that is the case then please open a new pull request with the appropriate changes.

@algorithms-keeper algorithms-keeper bot closed this Oct 7, 2024
@algorithms-keeper algorithms-keeper bot added the awaiting reviews This PR is ready to be reviewed label Oct 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting reviews This PR is ready to be reviewed invalid
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant